package utils

import (
	"alertmanagerWebhook/global"
	"fmt"
)

func HandleAPIError(response map[string]interface{}) error {
	if errcode, ok := response["errcode"].(float64); ok {
		if int(errcode) != 0 {
			errmsg := response["errmsg"].(string)
			errMsg := fmt.Sprintf("钉钉API错误 %d: %s", int(errcode), errmsg)
			global.Logger.Errorf(errMsg)
			return fmt.Errorf(errMsg)
		}
		return nil
	}
	
	// 检查钉钉特有的成功标识
	if _, ok := response["msgtype"]; !ok {
		global.Logger.Errorf("无效的钉钉响应格式: %v", response)
		return fmt.Errorf("无效的钉钉响应格式")
	}
	
	return nil
}

// func HandleWeChatAPIError(response map[string]interface{}) error {
// 	if errCode, ok := response["errcode"].(float64); ok {
// 		if int(errCode) != 0 {
// 			errMsg := fmt.Sprintf("WeChat API error %d: %v", int(errCode), response)
// 			global.Logger.Errorf(errMsg)
// 			return fmt.Errorf(errMsg)
// 		}
// 		// 当errcode为0时，即使没有msgtype也认为是成功的
// 		return nil
// 	}
	
// 	// 只有当errcode不存在时才检查msgtype
// 	if _, ok := response["msgtype"]; !ok {
// 		global.Logger.Errorf("Invalid WeChat response format: %v", response)
// 		return fmt.Errorf("invalid WeChat response format")
// 	}
	
// 	return nil
// }
